$(function () {
  var all_url = 'http://api20.scsj.net.cn'
  // 手机号码正则
  var phoneReg = /^1[3|4|5|7|8][0-9]{9}$/
  // 6—12位密码正则
  var pwReg = /[A-Za-z0-9]{6,20}/
  var timer,num = 90
  $.toast.prototype.defaults.duration = 800

  // token判断
  var token = $.cookie('token');
  if (token) {
    $.ajax({
      url: all_url + '/user/getUserDetail.do',
      type: 'post',
      dataType: 'json',
      data: {
        tocken: token
      },
      success: function (data) {
        if (data.code == 200) {
          location.href = '../templates/personal.html'
        } else if (data.code == 408 || data.code == 402) {
          $.cookie('token', null, {
            path: '/',
            expires: -1
          })
          $.cookie('userId', null, {
            path: '/',
            expires: -1
          })
          return
        }
      }
    })
  }

  // 去掉用户输入的空格或者横线
  String.prototype.NoSpace = function() {
    return this.replace(/[\s|-]+/g, "");
  }
  $("#telephone").change(function(){
    var val = $("#telephone").val().NoSpace();
    $("#telephone").val(val);
    console.log($("#telephone").val().NoSpace());
  })

  // 短信状态恢复
  function smsState () {
    $('#codeBtn').css('backgroundColor', '#ebb81c')
    $('#codeBtn').attr('disabled', false)
    $('#codeBtn').val('获取验证码')
    // 清除定时器
    clearInterval(timer)
    num = 90
  }

  // 发送验证码
  $('#codeBtn').click(function () {
    if ($('#telephone').val() == '') {
      $.toast('请输入手机号码', 'text')
      return false
    } else if (!phoneReg.test($('#telephone').val())) {
      $.toast('手机号格式错误', 'text')
      return false
    }else {
      $.ajax({
        type: 'post',
        url: all_url + '/checkphone.do',
        data: {phone: $('#telephone').val()},
        success: function (data) {
          if (data.code == 200) {
            $.toast('该手机号码未注册', 'text')
            return
          }else {
            $('#codeBtn').css('backgroundColor', '#999')
            $('#codeBtn').attr('disabled', true)
            $('#codeBtn').val('90秒后再次发送')
            timer = setInterval(function () {
              num--
              $('#codeBtn').val(num + '秒后再次发送')
              if (num < 1) {
                smsState()
              }
            }, 1000)

            // 获取短信验证码
            var smData = {
              phone: $('#telephone').val()
            }

            $.ajax({
              type: 'post',
              url: all_url + '/sms/smsRequestLog.do',
              dataType: 'json',
              data: smData,
              success: function (data) {
                console.log(data)
                if (data.code == 200) {
                  $.toast('已发送', 'text')
                } else {
                  $.toast('发送失败', 'text')
                }
              },
              error: function (data) {
                $.toast('短信发送错误', 'cancel')
              }
            })
          }
        }
      })
    }
  })

  // 修改密码请求
  function editPw () {
    var un = $('#telephone').val()
    var code = $('#captaha').val()
    var pw = $('#password').val()
    var confirm = $('#confirm').val()
    if (un == '' || code == '' || password == '' || confirm == '') {
      $.toast('请将信息填写完整', 'text')
      return
    }else if (!phoneReg.test(un)) {
      $.toast('手机号码格式错误', 'text')
      return
    }else if (!pwReg.test(pw)) {
      $.toast('密码格式错误', 'text')
      return
    }else if (confirm !== pw) {
      $.toast('两次密码不一致', 'text')
      return
    }

    // 请求参数
    var subData = {
      username: un,
      pass: pw,
      smscode: code
    }
    // 修改密码请求
    $.ajax({
      url: all_url + '/user/userUpdatePass.do',
      type: 'post',
      data: subData,
      dataType: 'json',
      success: function (data) {
        if (data.code == 200) {
          $.toast(data.message, function () {
            location.href = '../index.html'
          })
        }else {
          $.toast(data.message, 'text')
          return
        }
      },
      error: function () {
        $.toast('密码修改错误请稍后再试', 'cancel')
      }
    })
  }

  // 点击提交
  $('#btn').click(function () {
    editPw()
    return false
  })
})
